﻿// 功能：宫格控件。比如九宫格、十二宫格等。
// 描述：
// 作者：温伟鹏
// 日期：2010/10/19 14:53:26

using System;
using System.Runtime.InteropServices;

namespace MeizuSDK.Presentation
{
    /// <summary>
    /// 宫格控件。比如九宫格、十二宫格等。
    /// </summary>
    public class StyleBox:Control
    {
        #region DllImport
        [DllImport("MZFCWrapper.dll")]
        private static extern IntPtr UiWinCtor();
        #endregion

        #region 私有变量
        /// <summary>
        /// 用来承载宫格项的容器
        /// </summary>
        private ScrollableControl hostControl;
        /// <summary>
        /// 宫格项目集合
        /// </summary>
        private StyleBoxItemCollection items;

        private object ItemsSyncRoot = new object();
        /// <summary>
        /// 列数
        /// </summary>
        private int columnsNum;
        /// <summary>
        /// 列宽 设置为-1，表示自动设置列宽。
        /// </summary>
        private int columnWidth;
        /// <summary>
        /// 行间距
        /// </summary>
        private int rowSpacing;
        #endregion

        #region 公共属性
        /// <summary>
        /// 获取宫格控件的项目集合
        /// </summary>
        public StyleBoxItemCollection Items
        {
            get{
                if(items == null)
                {
                    lock (ItemsSyncRoot)
                    {
                        if(items==null)
                        {
                            items = new StyleBoxItemCollection();
                        }
                    }
                }
                return items;
            }
        }
        /// <summary>
        /// 获取或设置列数量
        /// </summary>
        public int ColumnsNum
        {
            get{
                return this.columnsNum;
            }
            set{
                if(value!=this.columnsNum)
                {
                    this.columnsNum = value;
                }
            }
        }
        /// <summary>
        /// 获取或设置列宽
        /// </summary>
        public int ColumnWidth
        {
            get{
                return this.columnWidth;
            }
            set{
                if(value!=this.columnWidth)
                {
                    this.columnWidth = value;
                }
            }
        }
        #endregion

        #region 构造函数
        /// <summary>
        /// 构造StyleBox控件实例
        /// </summary>
        public StyleBox()
        {
            Handle = UiWinCtor();
            SetID();
        }
        #endregion

        #region 函数
        #endregion
    }
}
